﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using mamnontuoitho7.AppCode;
using System.Data;

namespace mamnontuoitho7.backend
{
    public partial class ParentEdit : System.Web.UI.Page
    {

        private Member mem = new Member();
        protected Parent _parent = new Parent();
        protected Kid _kid = new Kid();

        protected General _general = new General();
        private ThumbnailClass _thumbnailClass = new ThumbnailClass();
        protected DataRow _dtrParent;
        protected DataTable _dttKid;

        private String _parentAvatar = "";
        protected String _parentID = "";
        protected String _parentName = "";

        protected void Page_Load(object sender, EventArgs e)
        {

            //Check Role Admin
            if (Session["memberID"].ToString() != "" && (ConstantClass.permissionInfo).IndexOf(Session["role"].ToString() + ",") != -1)
            {
                try
                {
                    if (Request.QueryString["hidParentID"] != null)
                    {
                        _parentID = Request.QueryString["hidParentID"].ToString();


                        if (!IsPostBack)
                        {
                            loadParentInformation(Request.QueryString["hidParentID"].ToString());
                        }

                        _dttKid = _kid.GetParentKids(Request.QueryString["hidParentID"].ToString());
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    Response.Redirect(ConstantClass._errorAdminPage);
                }
            }
            else
            {
                Response.Redirect(ConstantClass._errorLoginPage);
            }
        }


        /// <summary>
        /// Load parent information from database
        /// </summary>
        private void loadParentInformation(String parentID)
        {

            _dtrParent = _parent.GetMemberDetails(parentID);

            txtMemberName.Text = _dtrParent["MemberName"].ToString();
            hidParentName.Value = txtFullname.Text = _dtrParent["FullName"].ToString();
            ddlSex.SelectedValue = _dtrParent["Sex"].ToString();
            txtBirthday.Text = _dtrParent["Birthday"].ToString();
            txtAddress.Text = _dtrParent["Address"].ToString();
            txtEmail.Text = _dtrParent["Email"].ToString();

            txtPhone.Text = _dtrParent["Phone"].ToString();
            txtCareer.Text = _dtrParent["Career"].ToString();
            hidImageParent.Value = _parentAvatar = _dtrParent["Avatar"].ToString();
            imgParent.ImageUrl = "../images/avatar/teacher_parents/" + (_parentAvatar == "" ? ConstantClass._memberDefaultAvatar : _parentAvatar);
            chbMemberVisible.Checked = (_dtrParent["MemberVisible"].ToString().ToLower() == "true" ? true : false);
        }


        protected void btnParentEdit_Click(object sender, EventArgs e)
        {
            try
            {
                if (Request.QueryString["hidParentID"] != null)
                {
                    _parentID = Request.QueryString["hidParentID"].ToString();
                    _parentAvatar = hidImageParent.Value;

                    if (txtMemberName.Text.Trim() == "")
                    {
                        lblParentNotice.Visible = true;
                        lblParentNotice.Text = "Tên đăng nhập không được để trống.";
                        return;
                    }

                    string avatar = txtFullname.Text.Trim() + "-" + _parentID;
                    if (fulParentAvatar.FileName != "" && fulParentAvatar.FileName != null)
                    {
                        if (fulParentAvatar.FileBytes.Count() / 1024 > 6144)
                        {
                            lblParentNotice.Visible = true;
                            lblParentNotice.Text = "Dung lượng hình ảnh phải dưới 6MB.";
                            return;
                        }

                        avatar = _thumbnailClass.UploadImage2(fulParentAvatar, Request.PhysicalApplicationPath + "images/avatar/teacher_parents/", avatar, 128, 128, _parentID);

                        if (avatar == "")
                        {
                            lblParentNotice.Visible = true;
                            lblParentNotice.Text = "Hình của phụ huynh mới không thể upload được. File hình chỉ hỗ trợ những file: jpg, jpeg, gif, png, bmp, tiff";
                            return;
                        }
                    }
                    else
                    {
                        avatar = _parentAvatar;
                    }

                    int checkUpdate = _parent.UpdateParent(txtMemberName.Text.Trim(),
                                                              _parentID,
                                                              txtFullname.Text.Trim(),
                                                              ddlSex.SelectedValue,
                                                              txtBirthday.Text.Trim(),
                                                               txtAddress.Text.Trim(),
                                                              txtEmail.Text.Trim(),
                                                              txtPhone.Text.Trim(),
                                                              avatar,
                                                              txtCareer.Text.Trim(),
                                                              chbMemberVisible.Checked.ToString());

                    if (checkUpdate == 1)
                    {
                        //checkNotice = true;
                        lblParentNotice.Visible = true;
                        lblParentNotice.Text = "Thông tin của phụ huynh đã được cập nhật.";
                        hidImageParent.Value = _parentAvatar = avatar;
                        imgParent.ImageUrl = "../images/avatar/teacher_parents/" + (avatar == "" ? ConstantClass._memberDefaultAvatar : avatar);
                        hidParentName.Value = txtFullname.Text.Trim();
                    }
                    else if (checkUpdate == ConstantClass.duplicateKey)
                    {
                        lblParentNotice.Visible = true;
                        lblParentNotice.Text = "Tên đăng nhập này đã có. Xin vui lòng đổi tên khác.";
                    }
                    else
                    {
                        lblParentNotice.Visible = true;
                        lblParentNotice.Text = "Có lỗi hệ thống không thể cập nhật được.";
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Response.Redirect(ConstantClass._errorAdminPage);
            }

        }


        protected void btnCancle_Click(object sender, EventArgs e)
        {
            try
            {
                if (Request.QueryString["hidParentID"] != null)
                {
                    _parentID = Request.QueryString["hidParentID"].ToString();
                    loadParentInformation(_parentID);
                    lblParentNotice.Visible = false;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Response.Redirect(ConstantClass._errorAdminPage);
            }
        }

        /// <summary>
        /// Reset pass to default pass for member
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnResetDefaultPass_Click(object sender, EventArgs e)
        {
            try
            {
                if (Request.QueryString["hidParentID"] != null)
                {
                    _parentID = Request.QueryString["hidParentID"].ToString();
                    _parent.ResetDefaultPass(_parentID);

                    lblParentNotice.Visible = true;
                    lblParentNotice.Text = "Mật mã của phụ huynh " + txtFullname.Text.Trim() + " đã được đổi thành là " + ConstantClass._passwordDefault;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Response.Redirect(ConstantClass._errorAdminPage);
            }
        }

    }
}